![]() Method and system for optimizing clusters of virtual machines in a cloud computing platform
专利摘要:
A method and system for optimizing virtual machine (VM) instances (121) of an array (120) of virtual machines (VM) in a cloud computing platform (100) to avoid use of VM instances (121) whose performance has degraded. The process of optimizing VM instances (121) includes the steps of identifying and optimizing VM instances (121) whose performance has deteriorated in VM clusters (120). The performance of deficient VM instances can be optimized by requesting, for each deficient VM instance (121), that a corresponding replacement VM instance (121) be created by the laaS (170), and therefore, the maintenance of the highest performing VM instance of each pair of VM instances (121), deficient and replacement. Figure for the abstract: Fig. 2 公开号:FR3093842A1 申请号:FR1902609 申请日:2019-03-14 公开日:2020-09-18 发明作者:Jacques Bonaud;Vincent BOULINEAU;Michel Demazeau 申请人:Amadeus SAS; IPC主号:
专利说明:
[0001] The present invention relates to a method and a system for optimizing virtual machine (VM) instances of a group of virtual machines (VM) in a cloud computing platform in order to avoid the use of VM instances whose performance s is degraded. [0002] In the past few years, distributing services/applications through a cloud computing platform has become commonplace. The main advantage of cloud computing is that it eliminates most of the hassles of physical hardware and/or software resources, allowing users to focus on their core business rather than worrying about maintenance and deployment of data centers. The cloud computing model is based on granting a user access to physical computing resources with a billing mode that allows the user to pay for the computing resources as they become available. they are consumed to run the services/applications on the cloud computing platform. As the demand for managed cloud applications/services evolves, the underlying specific resources can be dynamically scaled to meet the computing needs of the cloud services/applications at any given time. [0003] Running a data center can be extremely expensive and therefore, to make the cloud computing model profitable, cloud computing providers, also known as infrastructure-as-a-service providers ( laaS), use the concept of virtualization allowing multiple users to share the same underlying physical resources. Virtualization allows the partitioning of hardware and/or software resources into isolated virtual machine (VM) instances that can be assigned to a user on demand to run applications and/or services on the cloud computing platform. [0004] Generally, the quality of service and cost to run a cloud service and/or application on the cloud computing platform is highly dependent on the physical computing resources consumed by the assigned VM instances. In existing solutions, the allocation of physical resources is usually based on monitoring the use of the resource, e.g. ex. the CPU utilization of each VM instance running the cloud service and/or application. The use of computing resources allocated to each VM instance may vary depending on the demand for the service and/or application hosted there. However, in some cases, usage of a VM instance is not tied to demand for the service and/or application, but rather to the quality and/or type of computing resources allocated by the provider. infrastructure as a service (laaS) to VM instances. When laaS providers are asked to provide a number of VM instances with specific technical characteristics, they must provide VM instances that are identical in terms of resources and performance. However, this is not always the case and VM instances whose performance has degraded can be used instead. As a result, the overall performance of a VM cluster may have degraded, which may affect the quality of service (QoS) provided by the application and/or service. In existing solutions, the problem of degraded performance can be overcome by increasing the number of VM instances in the VM cluster, e.g. ex. via VM instance sizing. However, increasing VM instances would also unnecessarily increase the cost associated with instantiating the required VM instances. [0005] An object of the present invention is to provide a method and system for optimizing virtual machine (VM) instances of a virtual machine (VM) cluster in a cloud computing platform to avoid the use of instances VM whose performance has degraded. [0006] The objective is achieved by the system and the method showing the technical characteristics of the respective aspects described below. [0007] According to a first aspect of the present invention, a method for optimizing a cluster of virtual machines, operating in a cloud computing platform, is provided. The VM cluster comprising a plurality of virtual machine (VM) instances, each VM instance being provisioned on at least one host device of at least one infrastructure service provider and being configured to run at least one component of at least one at least one software application configured to provide a cloud service, said cloud service being accessible to the user via a communication interface configured to receive and redirect user requests to the cloud service, the method comprising: - the selection of a software application operating in the group VM by means of a selection module; - monitoring for the selected software application, by means of a monitoring module, a corresponding software application component in each VM instance of the VM cluster; and - the management of the plurality of VM instances by means of a VM management module; wherein managing the plurality of VM instances includes: - determining the cluster parameters of the VM cluster, the cluster parameters comprising data relating to the technical characteristics of each VM instance, and software application components running on each VM instance in the VM cluster; - the identification, among the VM instances executing the components of the software application, of the deficient VM instances in which at least one VM performance metric is below a range of corresponding targeted performance values; and - optimization of the performance of deficient VM instances; wherein the step of optimizing the performance of the deficient VM instances comprises: - the request from the infrastructure service provider for a replacement VM instance with the same technical characteristics as each deficient VM instance; - copying the components of the software application running on each deficient VM instance to each corresponding replacement VM instance; - comparing at least one VM performance metric with that of a corresponding deficient VM instance; and - requesting the infrastructure service provider, based on the performance comparison results, to terminate the worst performing VM instance for each comparison, thereby defining a set of remaining VM instances, the set of remaining VM instances including the best performing VM instance for each comparison. [0008] It has been found that it is possible to continuously evaluate the performance of VM instances in the VM cluster and thereby avoid, or at least minimize the use of VM instances whose performance has degraded, which which may affect the quality of service (QoS) of the cloud service and/or software application. Furthermore, the present invention ensures that the provisioning of allocated computing resources is implemented as a response to an increasing demand for the desired cloud service and/or software application rather due to the use of VM instances whose performance is is degraded. The performance of a VM instance can degrade for several reasons. For example, degraded performance can be caused by a hardware issue on the host machines, also referred to as host devices, running the VM instances, e.g. ex. network card, memory card, disk controller, CPU malfunction, and so on. Additionally, the performance degradation of VM instances can be caused by multiple software applications that must have the same performance requirement, sharing the resources of the same VM instance. To ensure that each VM instance is performing according to the desired performance requirements of the software application, at least one performance metric can be monitored, either continuously or periodically. Furthermore, the step of identifying, and replacing when necessary, deficient VM instances can contribute to the efficient use by the software applications, operating in the VM cluster, of the physical resources assigned to the VM instances, which can lead to an improvement in the performance of each VM instance for said at least one performance metric. [0009] According to embodiments, said at least one VM performance metric comprises at least one application metric associated with at least one application component of the selected software application. [0010] Said at least one performance metric can be a VM performance metric comprising at least one application metric associated with at least one application component of the selected software application. For example, said at least one VM performance metric may be associated with performance of an assigned physical resource such as CPU utilization, memory utilization, disk space, network device performance , data storage usage, application failure rate (ACR), and user request rate. Application performance metrics can be in the form of key performance indicators (KPIs). The performance metrics to be monitored may be selected by a user and/or may be derived from a service level agreement (SLA) between the infrastructure service provider, cloud platform service provider and/or the software application service provider. [0011] According to embodiments of the second aspect, for each of said at least one VM performance metric, the range of corresponding targeted performance values is determined by the average performance value obtained for each of the VM performance metrics over all the VM instances . [0012] It has been found that deriving each targeted performance value range from the average performance value of each VM instance for the corresponding VM performance metric can provide a more realistic view of the current performance of VM instances in the VM grouping. In this way, more important technical issues can be brought to the fore, e.g. ex. with the performance of the physical resources allocated by the infrastructure-as-a-service (IaaS) provider. This way, a set of different actions can be triggered, which can be followed by steps to optimize VM clustering. Technical characteristics of VM instances can relate to assigned CPU, memory capacity, and network resources. The range of performance values targeted for each VM performance metric can be determined by taking the performance value of VM instances with the same technical characteristics and running the same applications. [0013] According to embodiments, performance optimization of deficient instances is continuously repeated until each of the VM performance metrics is within the targeted performance value in all remaining VM instances. [0014] By continuously repeating the optimization step, it is ensured that the infrastructure service provider (laaS) will provide the VM cluster with the most efficient VM instances. Continuous optimization may result in avoiding the use of VM instances whose performance has degraded and therefore maintaining the QoS provided by software applications running on the VM instances. [0015] According to embodiments, the number of VM instances to be terminated is determined based on a VM malfunction budget indicating the number of VM instances that can be terminated without affecting the quality of service of the software application by running in the VM cluster. [0016] This way, it is ensured that the required quality of service (QoS) provided by the software applications can be maintained during the VM clustering optimization step. QoS can be impacted when the number of terminated VM instances exceeds a predetermined threshold, which can be user-defined or can be calculated based on the performance requirements of the software application. Software application performance requirements may fluctuate over time, e.g. ex. based on the frequency of incoming user requests. [0017] According to embodiments, the VM grouping comprises VM instances with heterogeneous technical characteristics. [0018] It has been found that integrating into the VM cluster VM instances of heterogeneous type with different technical characteristics, can offer the advantage of hosting in the VM cluster a variety of software applications with different performance requirements. . Furthermore, the integration of heterogeneous VM instances can offer the additional advantage of allowing software application components to be redistributed in the VM cluster according to their performance requirements which can fluctuate over time depending on the demand encountered. by software application. [0019] According to embodiments, the performance optimization of deficient VM instances comprises a step of redistributing application components from deficient VM instances to high-performance VM instances, where each of said at least one performance metric is at above the range of corresponding target performance values. [0020] It has been found that redistributing software application components can optimize the use of physical resources assigned to VM instances and can improve the performance of each VM instance. With the implementation of the redistribution step, it is possible to distribute the workload encountered by the software application components, thus improving the performance of the VM instances in the VM cluster. The redistribution step can be implemented before or after the replacement step. For example, the redistribution step can be implemented after the identification of the deficient VM instances, but before the optimization step of the deficient VM instances. In this way, if the performance problem of the deficient VMs is solved by the redistribution step, then it is possible that it is not necessary to implement the optimization steps of the deficient VM instances. However, the redistribution step can be implemented after or as part of the steps to optimize deficient VM instances. [0021] According to embodiments, the redistribution includes: identifying the performance requirements of application components running on deficient VM instances; the identification, based on the performance and technical characteristics of each high-performance VM instance, of candidate VM instances capable of accommodating the performance requirements of each of the identified application components; and copying the application component to the selected high performance candidate VM instances. [0022] It has been found that implementing the above redistribution steps has the advantage of distributing the software application component according to their performance requirements in the VM cluster. For example, performance-hungry software application components can be moved to high-performance VM instances with enough performance capacity to accommodate their performance requirements. Therefore, redistribution of software application components can contribute to better utilization of computing resources assigned to VM instances in the VM cluster by application components. [0023] According to embodiments, said at least one VM performance metric is selected by a user. [0024] According to embodiments, said at least one of the VM performance metrics may be derived from a service level agreement between the infrastructure service provider and the cloud computing platform service provider. [0025] According to embodiments, said at least one VM performance metric is associated with the performance of an assigned physical resource comprising at least one of the following: CPU utilization, memory utilization, disk space , network device performance, data storage usage, software application throughput, application failure rate (ACR), and user request frequency. [0026] According to embodiments, the management of the plurality of VM instances includes a request to the monitoring module to monitor a specific performance metric of each VM instance. [0027] According to embodiments, the VM management module operates on at least one VM instance. [0028] According to embodiments, the determination of the grouping parameters of the VM grouping comprises at least one of the following actions: the reception of an laaS layer which is coupled in communication mode with an infrastructure service provider, information relating to the resources assigned to VM instances and permission to access and request replacement VM instances directly from infrastructure service providers, and/or receipt of a PaaS layer, coupled in communication mode with the cloud computing platform , information relating to the software applications running in the platform and the location of the components of the software application in each VM cluster, and/or the reception, from the monitoring module, of the application performance metrics of each component of software application running in each VM instance. [0029] It has been found that the communication mode coupling of the VM management module with at least the laaS layer, the PaaS layer and the monitoring module has the advantage of allowing the performance of each VM instance to be determined on the basis of the metrics derived directly from applications running on each VM instance rather than based on laaS metrics which are typically only accessible to the infrastructure service provider and difficult to change. In this way, it is possible to evaluate the performance of the VM instances in the VM cluster and, when necessary, to optimize the performance of the VM instances thus avoiding the use of VM instances whose performance has degraded which can impact the QoS provided by applications running on the VM cluster. Additionally, using information from the PaaS layer allows the optimization module to identify the best way to distribute the application and/or application components, e.g. ex. by moving application components to more appropriate VM instances to improve the performance of impacted VM instances. [0030] According to a second aspect of the present invention, a method for optimizing a cluster of virtual machines, operating in a cloud computing platform, is provided. The VM cluster comprising a plurality of virtual machine (VM) instances, each VM instance being provisioned on at least one host device of at least one infrastructure service provider and being configured to run at least one component of at least one at least one software application configured to provide a cloud service, said service being accessible to the user via a communication interface configured to receive and transmit the user's requests to the cloud service, the method comprising: a selection module configured to select at least one application (120) from the VM cluster; a monitoring module configured to monitor, for the selected software application, said at least one of the corresponding software application components in each VM instance of the VM cluster; and a VM management module coupled in communication mode with the monitoring module and being configured to: determine the grouping parameters of the VM grouping, the grouping parameters comprising data relating to the technical characteristics of each VM instance, and the components of software applications running on each VM instance in the VM cluster; and identify, among the VM instances executing the components of the software application, deficient VM instances in which at least one VM performance metric is below a range of corresponding targeted performance values; wherein the VM management module includes an optimization module to optimize the performance of deficient VM instances, the optimization module is configured to: request from the infrastructure service provider a replacement VM instance having the same technical characteristics for each deficient VM instance, copying the components of the software application running on each deficient VM instance to each corresponding replacement VM instance, comparing at least one VM performance metric with that of a corresponding deficient VM instance and requesting the infrastructure service provider to terminate, based on the performance comparison results, the worst performing VM instance for each comparison, thereby defining a set of remaining VM instances, the VM instance set remaining with the best performing VM instance for each comparison. [0031] According to embodiments of the second aspect, said at least one VM performance metric comprises at least one application metric associated with at least one application component of the selected software application. [0032] According to embodiments of the second aspect, for each of said at least one VM performance metric, the range of corresponding targeted performance values is determined by the average performance value obtained for each of the VM performance metrics over all VM instances. [0033] According to embodiments of the second aspect, performance optimization of deficient instances is configured to continuously optimize deficient VM instances until each of the VM performance metrics is within the targeted performance value in all instances remaining VMs. [0034] According to embodiments of the second aspect, the number of VM instances to be terminated is determined based on a VM malfunction budget indicating the number of VM instances that can be terminated without affecting the quality of service of the software application running in the VM cluster. [0035] According to embodiments of the second aspect, the VM grouping comprises VM instances with heterogeneous technical characteristics. [0036] According to embodiments of the second aspect, the optimization module is configured to redistribute the application components from deficient VM instances to high performance VM instances, in which each of said at least one performance metric is above of the range of corresponding target performance values. [0037] According to embodiments of the second aspect, the optimization module is configured to redistribute the application components by: identifying the performance requirements of the application components running on deficient VM instances; identifying, based on the performance and technical characteristics of each high-performance VM instance, the candidate VM instances capable of accommodating the performance requirements of each of the identified application components; and copying the application component to the selected high performance candidate VM instance. [0038] According to embodiments of the second aspect, said at least one VM performance metric is selected by a user. [0039] According to embodiments of the second aspect, said at least one of the VM performance metrics may be derived from a service level agreement between the infrastructure service provider and the cloud computing platform service provider . [0040] According to embodiments of the second aspect, said at least one VM performance metric is associated with the performance of an allocated physical resource comprising at least one of the following elements: CPU utilization, memory utilization, a disk space, network device performance, data storage usage, software application performance, application failure rate (ACR), and user request frequency. [0041] According to embodiments of the second aspect, the management of the plurality of VM instances includes a request to the monitoring module to monitor a specific performance metric of each VM instance. [0042] According to embodiments of the second aspect, the VM management module operates on at least one VM instance. It has been found that embedding the optimization module on at least one of the VM instances in the VM cluster can provide the benefit of more accurately monitoring the performance of the VM instances in the VM cluster. Additionally, the monitoring module can operate on at least one of the VM instances in the VM cluster. [0043] According to the embodiments of the second aspect, the management module VM is configured to determine the grouping parameters based on the data received from at least one of: an laaS layer which is communicatively coupled with the infrastructure services, information about resources assigned to VM instances, and permission to access and request replacement VM instances directly from infrastructure service providers; a PaaS layer, coupled in communication mode with the cloud computing platform, of information relating to the software applications running in the platform and the location of the software application components in each VM cluster; and from the monitoring module, application performance metrics of each software application component running in each VM instance. [0044] shows by way of example a VM group according to embodiments of the present invention. [0045] shows by way of example a VM group according to embodiments of the present invention. [0046] shows by way of example how the optimization module is connected to the different layers of the cloud platform in accordance with the embodiments of the present invention. [0047] shows by way of example a monitoring module in accordance with embodiments of the present invention. [0048] shows by way of example an optimization module in accordance with embodiments of the present invention. [0049] shows an exemplary method for optimizing a VM cluster in the cloud computing platform illustrated in Figures 1-5, in accordance with embodiments of the present invention. [0050] shows by way of example the steps of the method to be followed to optimize the deficient VM instances in the VM cluster according to embodiments of the present invention. [0051] The present invention will be illustrated using the exemplary embodiments shown in Figures 1-7 which will be described in more detail below. It should be noted that all references to dimensions are indicative only and do not limit the invention in any way. While the invention has been shown and described with reference to certain embodiments illustrated herein, those skilled in the art will appreciate that various modifications in form and detail may be made thereto without departing from the scope of application of the invention covered by the appended claims. Further, while the invention has been described with reference to a particular system and/or method for optimizing clusters of virtual machines of a cloud computing platform, those skilled in the art will understand that changes in shape and details can be provided to facilitate other types of methods and/or systems without departing from the scope of the invention. [0052] The shows by way of example a cloud computing platform 100 according to embodiments of the present invention. Cloud computing platform 100 may be provided by a platform service provider (PaaS) and may include a communication interface 110 configured to receive requests from a plurality of users 150 via a network 160, e.g. ex. the Internet, to access at least one application and/or service running on at least one virtual machine (VM) pool 120. Each VM pool 120 in the cloud computing platform 200 can be provisioned with a plurality of virtual machine (VM) instances 121, each of which is arranged to run at least one software application instance 122, as shown in Figure 2. For example, application blocks 122 (1, 2, 3 and 4) shown in Figure 2 may refer to stand-alone software applications and/or may refer to components of a software application that may be distributed within VM cluster 120. VM instances 121 may be provisioned on a physical host server, e.g. ex. an infrastructure as a service (iaaS) provider server computer 170 and physical computing resources assigned to support the operation of software applications and/or application components 122 running on VM instances 121. The computing resources Assigned physical assets may include, but are not limited to assignment of CPU, memory, input/output devices, peripherals, operating software, network devices and so on. A monitoring module 210 may be provided to monitor at least one of the software applications 122 and/or software components 122 running on each VM instance 121, shown in Figure 2 as applications 1, 2, 3 and 4. The monitoring module 210 can be configured to operate on at least one VM instance 121 of the VM array 120. For example, as shown in Figure 2, instances 2 and 4 include a monitoring module 210, each configured to monitor at least one of the applications software and/or software application components 122 running on each VM instance 121 of the VM array 120. Preferably a selection module, not shown, may be provided to select at least one software application to be monitored. The selection module may be stand-alone or may be provided as integrated with monitoring module 210. Each monitoring module 210 may be configured to monitor at least one VM performance metric associated with components of the selected software application 122 or applications depending on the case. For example, said at least one VM performance metric may be associated with performance of an assigned physical resource such as CPU utilization, memory utilization, disk space, network device performance, data storage usage, application performance, application failure rate (ACR), frequency of user requests, and so on. Application metrics to be monitored may be user selected and/or derived, e.g. ex. a service level agreement (SLA). A VM 220 management module can be used to manage the VM 121 instances of the VM 120 cluster. As shown in Figure 2, the VM 210 management module can operate on at least one of the VM 121 instances. Each VM 120 cluster can be provided with a workload balancing module 180 which can be configured to distribute user requests between VM instances 121 running the requested software application 122 in order to distribute the workload encountered by each VM instance 121. [0053] As shown in Figure 3, the VM management module 220 can be configured to access, via at least one application programming interface (API), each layer of the cloud computing platform 100. For example, the management module Optimization 220 can elicit a range of information from each mouth which may include: - from the laaS provider layer 170, information relating to the technical characteristics of each VM instance 121 used in the selected VM cluster 120; - From the PaaS layer 100, information relating to the applications 122 running in each VM group and the location of the software application components in the VM instances 121 of the VM group 120, ie. in which VM instance 121 each software application component operates; and - from the application/monitoring module 210, information relating to the application performance metrics, to be monitored, also known as key performance indicators (KPIs). [0054] The VM management module 220 can be configured via the API to request directly from the laaS provider 170 to create and/or terminate the VM instances 121. In general, the VM management module 220 can use the information received from the PaaS layer 100 to automatically discover running applications and their location within the VM cluster of interest 120, and may periodically poll all application/monitoring modules 210 running within the VM cluster 120 to obtain indicators also known as key performance indicators (KPIs) which can be used to calculate the performance levels of each VM instance 121 in the selected VM cluster. [0055] Figure 4 shows an example of a monitoring module 210 according to embodiments of the present invention. Monitoring module 210 may be provided with an application monitoring engine 211 that is configured to monitor at least one application performance metric associated with at least one component of the selected software application. A performance metrics module 212 may be provided to select performance metrics to monitor. The performance metrics to be monitored may be selected by a user and/or may be derived from a service level agreement (SLA) between the infrastructure service provider, the cloud platform service provider and/or the software application service provider. VM management module 220 may request monitoring module 210 to monitor a specific application performance metric for each VM instance 121 in VM cluster 120. Monitoring module 210 may further be provided with a database 213 to store the values of the monitored performance metrics of the VM instances 121 and any other desired information. [0056] Figure 5 shows an example of a VM 220 management module according to embodiments of the present invention. The VM management module 220 can be configured to determine, by means of a grouping parameter identification module 223, a set of parameters of the grouping of the VM grouping 120. The grouping parameters can be associated with the technical characteristics of each VM instance 121 and selected software application components 122, or applications running on each VM instance 121 in VM cluster 120. Based on the cluster parameters and performance metric values received from monitoring module 210, the VM management module 220 can identify, by means of a faulty VM identification module 222, the faulty VM instances 121 in the selected VM cluster 120 in which at least one VM performance metric falls below a range of corresponding target performance values. Deficient VM identification module 222 may be configured to process the values received from monitoring module 210 and accordingly determine whether the performance of each VM instance 121 is within targeted values for said at least one performance metric. Deficient VM identification module 222 can further be configured to classify each VM instance 121 that operates below the target value for the selected performance metric. The information relating to the identified deficient VM instances 121 can be stored and communicated to an optimization module 221. The optimization module 221 can request, via an API, the laaS provider 170 to create a replacement VM instance for each deficient VM instance. identified by the faulty VM identification module 222. Each replacement VM instance can have the same characteristics as each corresponding faulty VM instance. Once the replacement VM instances have been created, the optimization module 221 can be configured to copy the software application running on each deficient VM instance to each corresponding replacement VM instance 121. The performance of each replacement VM instance for said at least one performance metric is determined and the optimization module 221 can accordingly decide which version to keep in the VM cluster 120, between the VM instance, the deficient VM instance or the VM instance of replacement. The least performing VM instance of each pair of VM instances, deficient VM instances and corresponding replacement VM instances is subject to a termination request with the laaS provider 170. [0057] In addition to the system for optimizing a VM array 120 as previously described, an exemplary method 300 according to embodiments of the present invention may be provided. The process for optimizing a VM cluster 120 may begin at step 310 by selecting the software application and/or application components to monitor. Step 310 may further include determining at least one application performance metric to monitor. Step 310 may be followed by step 311 where said at least one selected software application is monitored for said at least one selected performance metric. Step 320 is associated with the management of VM instances 121 in the VM cluster. Management step 320 may be implemented in a series of steps illustrated in Figure 6. For example, management step 320 may include a step 321 by which VM clustering parameters are determined. Grouping parameters can include data about the technical characteristics of each VM instance, eg. ex. the CPU, memory, network device, and software application components running on each VM instance in the VM cluster. Once the cluster parameters have been determined, step 322 may be implemented to identify deficient VM instances in the selected VM cluster having at least one VM performance metric that may have been defined in step 310 [ as being] below a range of performance target values. The range of targeted performance values can be set based on a desired maximum rate of resource utilization for each VM instance which can be set by the user or the system. The resource utilization rate may relate to the maximum and/or minimum utilization of physical resources assigned to each VM instance by the laaS provider 170. Once at least one deficient VM instance has been identified, step 323 can then be triggered to optimize the deficient VM instances 121 in the VM cluster 120. Steps 321, 322 and 323 can be repeated continuously or periodically, thereby ensuring that the VM cluster 120 is provided with the VM instances 121 that can be generated from said at least one IaaS provider. [0058] In accordance with embodiments of the present invention, the step of optimizing deficient VM instances 121 in VM cluster 120 may comprise a series of steps illustrated in Figure 7. For example, at step 3231 a request to the infrastructure service provider 170 can be issued for the generation of a replacement VM instance having the same technical characteristics as each deficient VM instance identified. Once the replacement VM instances have been generated, the software application components of each deficient VM instance are copied to the corresponding replacement VM instance in step 3232. In step 3233, the performance of each instance Replacement VM is compared to the performance of the corresponding deficient VM instance. The best performing VM instance 121 of each deficient and replacement VM instance pair is identified for the same performance metric at step 3234. If the performance of the deficient VM is better than the performance of the corresponding replacement VM instance, a termination request is then sent at step 3235 to the laaS provider 170 to terminate the replacement VM instance 121. On the other hand, if the performance of the replacement VM is better the performance of the corresponding deficient VM instance 121, then a request is sent at step 3236 to the laaS provider 170 to terminate the deficient VM instance. Once the comparison for each pair of deficient and replacement VM instances has been completed, step 3237 is initiated, whereby a set of remaining VM instances is determined, the set of remaining VM instances comprises the best performing VM instance for each comparison. [0059] An example of the invention may be given herein for illustrative purposes only. A platform service provider (¨PaaS) cloud platform 100 may be provided with a VM cluster 120 that includes 20 VM instances 121, each running a component of the software application 122. At least one of the VM instances 121 hosts a monitoring module 210 that is configured to monitor at least one application performance metric, e.g. ex. the CPU usage of the VM instance. A VM 220 management module is provided on one of the VM 121 instances in the VM 120 cluster. The VM 220 management module is configured to manage the VM 121 instances for the selected application performance metric monitored by the monitoring 210 which in this case may be the CPU usage of each VM instance. The monitoring module 210 monitors, according to the selected performance metric, the CPU usage of each VM instance 121 in the VM cluster. VM management module 220 may continuously assess whether the performance of each VM instance 121 for the selected performance metric, in this case CPU utilization, is within a targeted performance value range, e.g. ex. between 50-80% of the maximum performance of a VM instance. Once the VM management module 220 detects that the performance of certain, p. ex. five, instances VM 121 is above the target performance range, p. ex. at least 90%, it then begins the optimization process by means of the optimization module 221. The optimization process involves requesting the infrastructure provider 170 to generate, in accordance with this example, five replacement instances corresponding to the five VM 121 instances identified as deficient; i.e. that [as a result] the monitored performance metric is above the targeted range of performance values. The five replacement instances 121 are generated with the same technical characteristics as the corresponding defective VM instances. Once generated, the optimization module 221 would copy the software application components 122 running on each of the five identified deficient VM instances 121 to each of the five replacement VM instances. The 221 optimization module would then compare the performance of each replacement VM instance with each pair of corresponding deficient VM instances for the same performance metric to identify which of the two versions of the same VM instance, deficient or deficient VM replacement, performs best. For each pair, the worst performing VM instance is terminated and a set of remaining VM instances is determined that includes the best performing 121 VM instance for each comparison. The VM management module 220 may continually repeat the above steps to ensure that the VM cluster 120 includes the best performing VM instances that can be spawned by the selected laaS provider 170. [0060] In general, routines executed to implement embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program , object, module, or sequence of instructions, or even a subset thereof, may be referred to herein as "computer program code" or simply "program code" . Program code typically includes computer-readable instructions which reside at various times in various memory and storage devices in a computer, and which when read and executed by one or more processors in a computer, cause that computer to implement the operations and/or elements specific to the various aspects of the embodiments of the invention. Computer readable computer program instructions for performing the operations of embodiments of the invention may be, for example, assembly language or either source code or object code, written in combination with one or more Programming languages. [0061] The program code implemented in any of the applications/modules described herein may be distributed individually or collectively as a program product, in a variety of different forms. In particular, program code may be distributed using a computer-readable storage medium having computer-readable program instructions therein to cause a processor to implement aspects of embodiments of the invention. . [0062] Computer-readable data storage media that are inherently non-transitory may include tangible volatile and non-volatile, removable and non-removable media implemented in any data storage process or technology, such as computer-readable program instructions , data structures, program modules, or other data. Computer-readable storage media may further include random access memory (RAM), read-only read-only memory (ROM), read-only, programmable, and erasable memory (EPROM), read-only, programmable, and erasable memory (EEPROM), flash memory, or any solid-state memory technology, portable compact disc with read-only memory (CD-ROM), or other optical storage, magnetic cassettes, tapes magnetic recordings, magnetic disk memories or any other medium that can be used to store the desired information and capable of being deciphered by a computer. A computer-readable storage medium cannot be construed as inherently transient signals (e.g., radio waves or other electromagnetic waves propagating, electromagnetic waves propagating through a transmission medium such as a waveguide waves, or electrical signals transmitted by cable). The computer readable program instructions may be downloaded to a computer, other type of programmable data processing device or other machine readable storage medium device, or to an external computer or to an external storage device through a network. [0063] Computer-readable program instructions, stored on a computer-readable medium, can be used to instruct a computer, other types of programmable processing apparatus, or other devices to operate in a particular way, so that the instructions stored on a computer readable medium produce an item of manufacture including the instructions which implement the functions/actions specified in the flowcharts, sequence diagrams, and/or block diagrams. Computer program instructions may be supplied to one or more processors of a general purpose computer, dedicated computer or other programmable data processing device to produce a machine, so that the instructions, when executed through one or more processors, perform a series of calculations to implement the functions, actions, and/or actions specified in the flowcharts, sequence diagrams, and/or block diagrams. [0064] In certain other embodiments, the functions, actions, and/or operations specified in the flowcharts, sequence diagrams, and/or block diagrams may be rearranged, serialized, and/or concurrently processed in accordance with embodiments of the invention. Additionally, any of the flowcharts, sequence diagrams, and/or block diagrams may include more or fewer blocks than those illustrated in accordance with embodiments of the invention. [0065] The terminology used herein is intended to describe particular embodiments only and is not intended to limit the embodiments of the invention. It will also be understood that the terms "comprise", "comprise" and/or "comprising", when used in this specification, specify the presence of characteristics, integers, steps, operations, elements, and/or components, but does not exclude the presence or addition of one or more characteristics, integers, steps, elements, components and/or groups, therein. Further, to the extent that the terms "includes", "having", "a", "with", "including", or variations thereof, are used in the detailed description of the claims, such terms are intended to be inclusive in a way similar to the term "understand". [0066] Although the invention has been illustrated by a description of various embodiments and although these embodiments have been described in considerable detail, applicants do not intend to restrict, or limit, in any way the scope to these details. Additional advantages and modifications will be readily apparent to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and methods, and illustrative examples shown and described. Therefore, it is possible to depart from these details without departing from the scope of the general inventive concept.
权利要求:
Claims (15) [0001] A method for optimizing an array of virtual machines operating in a cloud computing platform, the VM array comprising a plurality of virtual machine, VM instances, each VM instance being provisioned on at least one host device of at least one infrastructure service and being configured to execute at least one component of at least one software application configured to provide a cloud service, said cloud service being accessible to the user via a communication interface configured to receive and direct requests from the user to the cloud service, the method comprising: - the selection of a software application operating in the group VM by means of a selection module; - monitoring for the selected software application, by means of a monitoring module, at least one corresponding software application component in each VM instance of the VM cluster; and - the management of the plurality of VM instances by means of a VM management module; wherein managing the plurality of VM instances includes: - determining the cluster parameters of the VM cluster, the cluster parameters comprising data relating to the technical characteristics of each VM instance, and software application components running on each VM instance in the VM cluster; - the identification, among the VM instances running of the components of the selected software application, of the deficient VM instances in which at least one VM performance metric is below a range of corresponding targeted performance values; and - optimization of the performance of deficient VM instances; wherein the step of optimizing the performance of the deficient VM instances comprises; - the request from the infrastructure service provider for a replacement VM instance with the same technical characteristics as each deficient VM instance; - copying the components of the software application running on each deficient VM instance to each corresponding replacement VM instance; - comparing at least one VM performance metric with that of a corresponding deficient VM instance; and - requesting the infrastructure service provider to terminate, based on the performance comparison results, the worst performing VM instance for each comparison, thereby defining a set of remaining VM instances, the instance set Remaining VMs including the best performing VM instance for each comparison. [0002] A method according to claim 1, wherein said at least one VM performance metric includes at least one application metric associated with at least one application component of the selected software application. [0003] A method according to claim 1 or 2, wherein for each of the at least one VM performance metric, the corresponding target performance value range is determined by the average performance value obtained for each of the VM performance metrics over all VM instances. [0004] A method according to any preceding claim, wherein the steps implemented to optimize the performance of deficient VM instances are continuously repeated until each of at least one VM performance metric is within the range of corresponding target performance values in all remaining VM instances. [0005] A method according to any preceding claim, wherein the number of VM instances to be terminated is determined based on a VM malfunction budget indicating the number of VM instances that can be terminated without affecting the quality of software application service running in the VM cluster. [0006] A method according to any preceding claim, wherein the VM cluster comprises VM instances with heterogeneous technical characteristics. [0007] A method according to claim 6, wherein the step of optimizing the performance of the deficient VM instance comprises a step of redistributing application components from the deficient VM instances to high performance VM instances, wherein each of said at least least one performance metric is above the corresponding target performance value range. [0008] A method according to claim 7, wherein the redistribution comprises:identifying performance requirements for application components running on deficient VM instances; identifying, based on the performance and technical characteristics of each high-performance VM instance, candidate VM instances capable of accommodating the performance requirements of each of the identified application components; and copying application components to corresponding candidate VM instances that are high performing. [0009] A method according to any preceding claim, wherein said at least one VM performance metric is selected by a user. [0010] A method according to any preceding claim, wherein at least one of the VM performance metrics can be derived from a service level agreement between the infrastructure service provider and the computing platform service provider by cloud. [0011] A method according to any preceding claim, wherein at least one VM performance metric is associated with the performance of an allocated physical resource comprising at least one of the following: CPU utilization, memory usage, disk space, network device performance, data storage usage, software application performance, application failure rate and data request frequency users. [0012] A method according to any preceding claim, wherein managing the plurality of VM instances includes requesting the monitoring module to monitor a specific performance metric of each VM instance. [0013] A method according to any preceding claim, wherein the VM management module operates on at least one VM instance. [0014] A method according to any preceding claim, wherein determining the clustering parameters of the VM clustering includes at least one of the following occurrences:receipt from a communication-coupled infrastructure as a service layer with the infrastructure service provider, information about resources assigned to VM instances, and permission to access and request replacement VM instances directly with the infrastructure service provider, and/or receiving a platform as a service layer that is communicatively coupled with the cloud computing platform, information about the software applications running in the platform, and locating the software application components in each bundle MV, and/or receiving the application performance metrics monitoring module from each software application component running in each VM instance [0015] A system for optimizing an array of virtual machines operating in a cloud computing platform, the VM array comprising a plurality of virtual machine instances, VMs, each VM instance being provisioned on at least one host device of at least one infrastructure service and being configured to execute at least one component of at least one software application configured to provide a cloud service, said service being accessible to the user via a communication interface configured to receive and transmit requests from the user to the cloud service, the system comprising: a selection module configured to select at least one application from the VM cluster; - a monitoring module configured to monitor the selected software application, said at least one of the corresponding software application components in each VM instance of the VM cluster; and a management module VM coupled in communication mode with the monitoring module and being configured for: - determining the cluster parameters of the VM cluster, the cluster parameters comprising data relating to the technical characteristics of each VM instance, and the software application components running on each VM instance in the VM cluster; - identifying, among the VM instances executing the components of the selected software application, deficient VM instances where at least one VM performance metric is below a range of corresponding targeted performance values; wherein the VM management module includes an optimization module to optimize the performance of deficient VM instances, the optimization module is configured to: - ask the infrastructure service provider for a replacement VM instance with the same technical characteristics for each deficient VM instance; - copying the components of the software application running on each deficient VM instance to each corresponding replacement VM instance; - comparing at least one VM performance metric with that of a corresponding deficient VM instance; and - requesting the infrastructure service provider to terminate, based on the performance comparison results, the worst performing VM instance for each comparison, thereby defining a set of remaining VM instances, the VM instance set remaining with the best performing VM instance for each comparison.
类似技术:
公开号 | 公开日 | 专利标题 US10587528B2|2020-03-10|Remote service for executing resource allocation analyses for distributed computer systems US9645840B2|2017-05-09|User-defined pools EP2541410B1|2017-11-15|Method for providing a service for on-demand software execution US20190207869A1|2019-07-04|Intelligent Placement within a Data Center US9634958B2|2017-04-25|Burst capacity for user-defined pools US9087156B2|2015-07-21|Application version release management US20130117157A1|2013-05-09|Optimally sourcing services in hybrid cloud environments FR3000578A1|2014-07-04|SHARED CALCULATION SYSTEM AND METHOD USING AUTOMATED SUPPLY OF HETEROGENEOUS COMPUTER RESOURCES FR3093842A1|2020-09-18|Method and system for optimizing clusters of virtual machines in a cloud computing platform US9047111B2|2015-06-02|Resource allocation in a virtualized computing environment US9571415B2|2017-02-14|System and method for performing customized resource allocation analyses for distributed computer systems US11064041B2|2021-07-13|Apparatus for providing cloud service using cloud service brokerage based on multiple clouds and method thereof US10684878B1|2020-06-16|Virtual machine management US20180046493A1|2018-02-15|Semantic-aware and user-aware admission control for performance management in data analytics and data storage systems US20200314168A1|2020-10-01|Distributed code execution involving a serverless computing infrastructure WO2014132009A1|2014-09-04|Method for detecting attacks on virtual machines US20150302440A1|2015-10-22|Cloud computing solution generation systems and methods US20180253809A1|2018-09-06|Method and system for distributing floating licenses for real-time services US20140297867A1|2014-10-02|Capacity merging for user-defined pools KR20210096619A|2021-08-05|An intelligent, decentralized and autonomous marketplace for distributed computing and storage US10735278B1|2020-08-04|Service availability metrics US20210342193A1|2021-11-04|Multi-cluster container orchestration US10686802B1|2020-06-16|Methods and systems for provisioning cloud computing services FR3096156A1|2020-11-20|Capping the pace of inbound transactions in established inbound stateful exchanges in a distributed computing environment US10574542B2|2020-02-25|System and method for distributing resources throughout a network
同族专利:
公开号 | 公开日 US11204795B2|2021-12-21| FR3093842B1|2021-09-10| US20200293356A1|2020-09-17|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 WO2012160124A1|2011-05-25|2012-11-29|International Business Machines Corporation|Optimizing the configuration of virtual machine instances in a networked computing environment| US9804890B1|2013-02-15|2017-10-31|Amazon Technologies, Inc.|Termination policies for scaling compute resources| US20150154039A1|2013-12-03|2015-06-04|Vmware, Inc.|Methods and apparatus to automatically configure monitoring of a virtual machine| US20150278061A1|2014-03-31|2015-10-01|Microsoft Corporation|Predictive load scaling for services| US9971621B1|2015-02-02|2018-05-15|Amazon Technologies, Inc.|Hotpooling virtual machines| WO2017107001A1|2015-12-21|2017-06-29|Intel Corporation|Apparatus and method for pattern-driven page table shadowing for graphics virtualization| US10880367B2|2019-01-23|2020-12-29|Vmware, Inc.|Load balancing stretched clusters in a distributed network|US10754827B2|2018-11-06|2020-08-25|Dropbox, Inc.|Technologies for integrating cloud content items across platforms| US11194688B1|2019-05-08|2021-12-07|Amazon Technologies, Inc.|Application architecture optimization and visualization|
法律状态:
2020-03-24| PLFP| Fee payment|Year of fee payment: 2 | 2020-09-18| PLSC| Publication of the preliminary search report|Effective date: 20200918 | 2021-03-23| PLFP| Fee payment|Year of fee payment: 3 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 FR1902609|2019-03-14| FR1902609A|FR3093842B1|2019-03-14|2019-03-14|Method and system for optimizing clusters of virtual machines in a cloud computing platform|FR1902609A| FR3093842B1|2019-03-14|2019-03-14|Method and system for optimizing clusters of virtual machines in a cloud computing platform| US16/811,321| US11204795B2|2019-03-14|2020-03-06|Method and a system for optimising virtual machine clusters of a cloud computing platform| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|